package cn.xeblog.plugin.tools.read.util;

import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

/**
 * 键盘键位格式化工具类
 *
 * @author LYF
 * @date 2022-07-21
 */
public class KeyFormatUtil {
    /**
     * 键盘键位格式化
     *
     * @param e 键位事件
     * @return 键盘键位格式化后的字符串
     */
    public static String format(KeyEvent e) {

        // 按键文本
        String modifiersText = InputEvent.getModifiersExText(e.getModifiersEx());
        String keyStr = "";

        // 不为空则追加
        if (!"".equals(modifiersText)) {
            keyStr += modifiersText;
        }

        // 如果键位字符串不存在当前快捷键文本的时，追加,用“+”隔开
        if (!keyStr.contains(KeyEvent.getKeyText(e.getKeyCode()))) {
            keyStr += keyStr.isEmpty() ? "" : "+";
            keyStr += KeyEvent.getKeyText(e.getKeyCode());
        }

        // 替换箭头
        if (keyStr.contains("箭头")) {
            keyStr = keyStr.replaceAll("向上箭头", "↑").replaceAll("向下箭头", "↓").replaceAll("向右箭头", "→").replaceAll("向左箭头", "←");
        }

        return keyStr;
    }
}
